package com.ltu.myannotation;

import java.lang.reflect.Method;

import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

/**  
 * @Description: 
 * @author: 若尘  
 * @date 2019年5月17日 下午4:06:53
 * @version V1.0  
 */
public class MyAopUtil {
	/**
	 * 
	 * @date 2019年4月13日
	 * @author 若尘
	 * @Description 获取参数列表中的id值
	 * @return
	 */
	public static  Object parseKey(String key,Method method,Object[] args){
		LocalVariableTableParameterNameDiscoverer   discover=new LocalVariableTableParameterNameDiscoverer();
		String[] paraNameArr= discover.getParameterNames(method);
		ExpressionParser  paraser=new SpelExpressionParser();
		EvaluationContext  context=new StandardEvaluationContext();
		int len=paraNameArr.length;
		for(int i=0;i<len;i++){
			context.setVariable(paraNameArr[i], args[i]);
		}
		Object obj= paraser.parseExpression(key).getValue(context,String.class);
		
		return  obj;
	}
}
